package example.双指针.快慢指针.链表倒数;

// NC69 链表中倒数最后k个结点

/**
 * 输入一个链表，输出一个链表，该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。
 * 如果该链表长度小于k，请返回一个长度为 0 的链表。
 */
public class Demo1 {

    public static ListNode FindKthToTail(ListNode pHead, int k) {
        if (pHead == null) {
            return null;
        }
        ListNode fast = pHead;
        int i = 0;
        for (i = 0; i < k; i++) {
            fast = fast.next;

            if (fast == null && (i != k - 1)) {
                return null;
            }
        }
        ListNode slow = pHead;
        while (fast != null) {
            fast = fast.next;
            slow = slow.next;
        }
        return slow;
    }

    public static void main(String[] args) {

    }

    public static class ListNode {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }
    }
}
